package hongcaosp.app.android.modle.mi;

import java.io.File;
import java.util.List;

import hongcaosp.app.android.modle.BaseResponse;
import hongcaosp.app.android.modle.DataCallBack;
import hongcaosp.app.android.modle.bean.ContactListWrapper;
import hongcaosp.app.android.modle.bean.DirectoryWrapper;
import hongcaosp.app.android.modle.bean.DynamicVideo;
import hongcaosp.app.android.modle.bean.Pagebean;
import hongcaosp.app.android.modle.bean.User;
import hongcaosp.app.android.modle.bean.UserInfo;
import hongcaosp.app.android.modle.bean.UserInfoWrap;
import hongcaosp.app.android.modle.bean.Video;

public interface UserModle {
    /**
     * 用户个人信息
     * URL(post): api/userInfo
     * @param id
     * @param dataCallBack
     */
    void userInfo(int id,String token, DataCallBack<UserInfoWrap> dataCallBack);

    /**
     * 用户作品视频列表
     * URL(post): api/userWorks
     * @param id
     * @param token
     * @param pageSize
     * @param pageNum
     * @param dataCallBack
     */
    void userWorks(int id, String token, int pageSize, int pageNum, DataCallBack<Pagebean<Video>> dataCallBack);

    /**
     * 用户自己动态视频列表
     * URL(post): api/userDynamic
     * @param id
     * @param pageSize
     * @param pageNum
     * @param dataCallBack
     */
    void userDynamic(int id,String token,int pageSize, int pageNum,DataCallBack<Pagebean<DynamicVideo>> dataCallBack);

    /**
     * 用户喜欢视频列表
     * URL(post): api/userLoves
     * @param id
     * @param token
     * @param pageSize
     * @param pageNum
     * @param dataCallBack
     */
    void userLoves(int id, String token, int pageSize, int pageNum,DataCallBack<Pagebean<Video>> dataCallBack);

    /**
     * 我关注的人列表
     * URL(post): api/followList
     * @param id
     * @param token
     * @param pageSize
     * @param pageNum
     * @param dataCallBack
     */
    void followList(int id, String token, int pageSize, int pageNum, DataCallBack<Pagebean<User>> dataCallBack);

    /**
     * 我的粉丝人列表
     * URL(post): api/fansList
     * @param id
     * @param token
     * @param pageSize
     * @param pageNum
     * @param dataCallBack
     */
    void fansList(int id, String token, int pageSize, int pageNum, DataCallBack<Pagebean<User>> dataCallBack);

    /**
     * 联系人
     * URL(post): api/user/linkman
     * @param token String
     * @param dataCallBack
     */
    void linkman(String token, DataCallBack<ContactListWrapper> dataCallBack);

    /**
     * 好友列表(相互关注)
     * URL(post): api/user/goodFriends
     * @param token
     * @param dataCallBack
     */
    void goodFriends(String token, DataCallBack<ContactListWrapper> dataCallBack);

    /**
     * 好友推荐
     * URL(post): api/user/recommendUser
     * @param token String
     * @param pageSize
     * @param pageNum
     * @param dataCallBack
     */
    void recommendUser(String token,int pageSize, int pageNum,DataCallBack<Pagebean<UserInfo>> dataCallBack);

    /**
     * 好友推荐
     * URL(post): api/user/recommendUser
     * @param token String
     * @param dataCallBack
     */
    void directoriesFriends(String token, List<String> mobile, DataCallBack<DirectoryWrapper> dataCallBack);

    /**
     * 更新用户信息
     * URL(post): api/user/editInfo
     * @param token
     * @param path
     * @param nickName
     * @param userCode
     * @param userComment
     * @param school
     * @param sex
     * @param birthday
     * @param locality
     * @param dataCallBack
     */
    void editInfo(String token, String path, String nickName, String userCode, String userComment, String school,String schoolName,
                  int sex, String birthday,String locality,DataCallBack<BaseResponse> dataCallBack);

    /**
     * 更新用户头像
     * @param token
     * @param path
     * @param dataCallBack
     */
    void editUserHead(String token, File path, DataCallBack<UserInfoWrap> dataCallBack);
}
